// 状态管理
/**
 * 步骤说明：
 * 1、导入模块 createStore，这里并不是直接使用new Vuex()，而是使用Vuex中的store类
 * 2、创建store实例，createStore({})
 * 3、导出store模块
 */

// 1、导入模块
import { createStore } from "vuex"
// 导入A、B模块
import { moduleA } from "./modules/moduleA.js"
import { moduleB } from "./modules/moduleB.js"
// 导入Mutations、Actions、Getters
import { mutations } from "./mutations.js"
import { actions } from "./actions.js"
import { getters } from "./getters.js"

// 定义状态
const state = {
	counter: 1000,
	// 定义一个对象数组
	students: [
		{ id: 110, name: "张三", age: 18 },
		{ id: 111, name: "里斯", age: 24 },
		{ id: 112, name: "汪尔", age: 30 },
		{ id: 113, name: "小明", age: 10 },
	],
	// 新定义一个对象，测试响应式数据
	info: {
		id: 115,
		name: "比尔",
		age: 65,
	},
}

// 2、创建实例
const store = createStore({
	state,
	mutations,
	// 存放异步操作
	actions,
	// 定义一些基本的操作
	getters,
	modules: {
		a: moduleA,
		b: moduleB,
	},
})

// 导出store模块
export default store
